<!--
* 统计组件
* |-- div(.dept-manage-total-container) 总容器
*   |-- Selector 小组、学生选择器，@on-change 返回选中的学生
*   |-- div(.dept-manage-total-content) 显示选中学生的相关统计信息
*     |-- Divider 缺勤次数分割线
*     |-- Divider 任务完成次数分割线
*     |-- Divider 任务失败次数分割线
-->
<template>
    <div class="dept-manage-total-container">
        <Selector @on-change="getChange" />
        <div class="dept-manage-total-content" v-if="stu != undefined">
            <Divider>缺勤次数</Divider>
            {{stu.unsign.absent}}
            <Divider>任务完成次数</Divider>
            {{stu.task.finished}}
            <Divider>任务失败次数</Divider>
            {{stu.task.unfinish}}
        </div>
    </div>
</template>

<script>

import Selector from "@dept/vue/selector-index"
import task_request from "@/axios/task"
import unsign_request from "@/axios/unsign"

export default {
    
    components: {
        Selector
    },
    data() {
        return {
            stu: undefined      // 当前选中的学生
        }
    },
    methods: {
        /**
         * 从服务器分别获取选中学生的缺勤记录和任务统计信息
         * @param {String} v 选中学生的学号
         */
        async getChange(v) {
            let res = await unsign_request.axiosGetRecord(v, "____-__-__")
            res = res == null ? [] : res
            this.stu = {
                task: await task_request.taskStatistics(v, "2016-01-01", "2100-01-01"),
                unsign: {
                    absent: res.length,
                    record: res
                }
            }
        }
    }
}
</script>

<style lang="scss">
@import "@dept/scss/manage-total.scss";
</style>